package 多线程;
/*
 在Java中有两类线程：User Thread(用户线程)、Daemon Thread(守护线程) 
 用个比较通俗的比如，任何一个守护线程都是整个JVM中所有非守护线程的保姆：
 只要当前JVM实例中尚存在任何一个非守护线程没有结束，守护线程就全部工作；只有当最后一个非守护线程结束时，守护线程随着JVM一同结束工作。
 Daemon的作用是为其他线程的运行提供便利服务，守护线程最典型的应用就是 GC (垃圾回收器)，它就是一个很称职的守护者。
 User和Daemon两者几乎没有区别，唯一的不同之处就在于虚拟机的离开：如果 User Thread已经全部退出运行了，只剩下Daemon Thread存在了，虚拟机也就退出了。 因为没有了被守护者，Daemon也就没有工作可做了，也就没有继续运行程序的必要了。
*/
public class X04守护线程
{
	public static void main(String[]args){
		MyRunnable4 mr4=new MyRunnable4();
		Thread t=new Thread(mr4);
		//线程的一些方法
		t.setName("线程t");//设置名字 get获取名字
		t.isAlive();//线程是否活动
		t.getId();//获得线程标识id
		t.setPriority(Thread.MAX_PRIORITY);//设置线程优先级,优先级高可以加大线程抢占cpu时间片的概率
		t.setDaemon(true);//设置t为守护线程，即保姆线程 当没有用户线程时jvm退出
		t.start();
		
		for(int i=0;i<20;i++){
			System.out.println(Thread.currentThread().getName()+"=|=|="+i);
			try
			{
				Thread.sleep(100);
			}
			catch (InterruptedException e)
			{}
		}
	}
}
